Technical Field
Embodiments described herein generally relate to microprocessors. In particular, embodiments described herein generally relate to accessing memory with microprocessors in response to instructions.
Background Information
Processors are commonly operable to execute instructions to access system memory. For example, processors may execute load instructions to load or read data from the system memory and/or store instructions to store or write data to the system memory.
Certain processors are operable to execute vector indexed load instructions (e.g., to load a vector of elements using a vector of indices). These vector indexed load instructions are also referred to in the arts as vector gather instructions or simply gather instructions. Intel® Advanced Vector Extensions Programming Reference, document reference number 319433-011, published June 2011, describes several vector gather (VGATHER) instructions. Examples include VGATHERDPD, VGATHERQPD, VGATHERDPS, VGATHERQPS, VPGATHERDD, VPGATHERQD, VPGATHERDQ, and VPGATHERQQ. These gather instructions may be used to gather or load multiple data elements from memory using multiple corresponding memory indices.
Certain processors are operable to execute vector indexed store instructions (e.g., to store a vector of elements using a vector of indices). These vector indexed store instructions are also referred to in the arts as vector scatter instructions or simply scatter instructions. Intel® Architecture Instruction Set Extensions Programming Reference, document reference number 319433-015, published July 2013, describes several vector scatter (VSCATTER) instructions. These scatter instructions may be used to scatter or store multiple data elements from a source operand to system memory using multiple corresponding memory indices.